1. Field of the Invention
This invention relates to data storage and, more particularly, to storage techniques in data storage environments having multiple virtualized layers.
2. Description of the Related Art
Many business organizations and governmental entities rely upon applications that access large amounts of data, often exceeding a petabyte or more of data, for mission-critical applications. Often such data is stored on many different storage devices, which may be centrally located or distributed throughout an enterprise. Such storage devices may be heterogeneous in nature, including many different types of devices from many different manufacturers.
Configuring individual applications that consume data, or application server systems that host such applications, to recognize and directly interact with each different storage device that may possibly be encountered in a heterogeneous storage environment is increasingly difficult as the environment scales in size and complexity. Therefore, in some storage environments, specialized storage management software and hardware may be used to provide a more uniform storage model to storage consumers. Such software and hardware may also be configured to add to the storage model storage features not present in individual storage devices. For example, features to increase fault tolerance, such as data mirroring, snapshot/fixed image creation, or data parity, as well as features to increase data access performance, such as disk striping, may be implemented in the storage model via hardware or software.
Such features may be supplied in a storage model that includes block virtualization. Generally speaking, a block device may comprise a hardware or software entity that provides a collection of linearly addressed data blocks that can be read or written. In block virtualization, a number of virtualized block devices may be created out of one or more physical or logical block devices. Software and/or hardware may be used to rearrange blocks from one or more block devices (e.g., disks) and add various kinds of functions. The resulting rearranged collection of blocks may then be presented to a block device consumer, such as an application or a file system, as one or more aggregated devices with the appearance of one or more basic disk drives. That is, the more complex structure resulting from rearranging blocks and adding functionality may be presented as if it were one or more simple arrays of blocks, or logical block devices.
Volume managers supplied with operating systems may provide block virtualization in a homogenous, proprietary, or otherwise restricted storage environment. Therefore, such volume managers may not satisfy virtualization requirements in a heterogeneous storage environment. Block virtualization functionality may also be supplied by hardware vendors for their storage devices or by network vendors for their switches. Such virtualization functions are usually limited in their scope to a single layer and even a single device in the collection of physical devices. In a heterogeneous storage environment, however, there is no guarantee that virtualization products from a variety of vendors will function in a coordinated or cooperative manner, for example to provide desired end-to-end quality of service for I/O tasks requested by an application.